
# 移动n个 从 a 到c
# 需要移动n-1个 从 a 到 b
# 第n个 从 a 到 c
# n-1   从 b 到 c
# 这个过程是 n 从a移动到c 借助了b
from typing import List


def hanno(n,a,b,c):#n 从a移动到c 借助了b
    if n > 0:
        hanno(n-1,a,c,b)    #n-1 从a移动到了b 需要借助c
                            #n-1 从a借助c移动到了b
        print("%d从%s移动到了%s"%(n,a,c)) # 然后第n个从a移动到了c
        hanno(n-1,b,a,c)    #n-1从b移动到c借助了a
                            #n-1从a借助c移动到了b




def move(n:int,a:List[int],b:List[int],c:List[int]):
    # n个元素从a移动到c 借助了b
    if (n>0):
        move(n-1,a,c,b)
        temp = a[0]
        del a[0]
        c.append(temp)
        # n-1个元素从
        move(n-1,b,a,c)







if __name__ == "__main__":
    a = [i for i in range(1,4)]
    b = []
    c = []
    move(3,a,b,c)
    print(c)


